const db = wx.cloud.database()
import {
  getTimeNow
} from "../../utils/getTimeNow.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 用户信息
    userInfo: '',
    // 快递类型
    typeList: [{
        name: '小件',
        tip: '小件:巴掌大的快件,2块',
        money: 2
      },
      {
        name: '中件',
        tip: '中件:鞋盒大的快件,3.5块',
        money: 3.5
      },
      {
        name: '大件',
        tip: '大件:重量超过5公斤的快件,5块',
        money: 5
      },
    ],
    // 当前的页面
    typeNow: 0,
    // 显示更多
    showMore: false,
    // 额外赏金
    reward: false,
    // 是否点击过
    businessClick: false,
    businessIndex: 0,
    businessArray: ['京东快递', '圆通速递', "中通快递", "申通快递", "百世快递", "韵达快递", "极兔快递"],
    arriveIndex: 0,
    arriveArray: ['不限制', '尽快送达', "今天中午", "今天晚上"],
    genderIndex: 0,
    genderArray: ['不限制性别', '仅限男生', "仅限女生"],
    countIndex: 0,
    countArray: [1, 2, 3, 4, 5, 6, 7, 8, 9],
    // 图标图片
    iconImg: ['../../images/getExpress/active_img.png', '../../images/getExpress/image.png'],
    // 收件地址
    address: '',
    // 快递商家
    business: '',
    // 取件码信息
    codeMsg: '',
    // 截图
    screenshot: '',
    // 备注信息
    remark: '',
    // 原本的金额
    money: 2,
    // 打赏的金额
    addMoney: 0
  },
  // 选择的快递类型
  typeSelect(e) {
    const {
      id,
      tip,
      money
    } = e.currentTarget.dataset
    this.setData({
      typeNow: id,
      money
    })
    // 提示用户
    wx.showToast({
      icon: 'none',
      title: tip,
    })
  },
  // 跳转到我的地址页面
  goMyAddress() {
    wx.navigateTo({
      url: '../../pages/myAddress/myaddress',
    })
  },
  // 显示更多
  showBtn() {
    this.setData({
      showMore: !this.data.showMore
    })
  },
  // 加急打赏
  handleReward(e) {
    this.setData({
      reward: e.detail.value
    })
  },
  bindBusinessChange(e) {
    const that = this.data
    this.setData({
      businessIndex: e.detail.value,
      businessClick: true,
    })
    this.setData({
      business: that.businessArray[that.businessIndex]
    })
  },
  bindArriveChange(e) {
    this.setData({
      arriveIndex: e.detail.value,
    })
  },
  bindGenderChange(e) {
    this.setData({
      genderIndex: e.detail.value,
    })
  },
  bindCountChange(e) {
    this.setData({
      countIndex: e.detail.value,
    })
  },
  // 获取取件码信息
  getCodeMsg(e) {
    this.setData({
      codeMsg: e.detail
    })
  },
  // 上传截图
  uploadScreenshot() {
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        const id = Math.floor(Math.random() * 1000)
        const userInfo = this.data.userInfo
        wx.showLoading({
          title: '上传中...',
        })
        wx.cloud.uploadFile({
          cloudPath: `screenshot/${userInfo.nickName}-${id}.png`,
          filePath: res.tempFiles[0].tempFilePath,
          success: (result) => {
            // 将图片路径由cloud开头改为http开头
            wx.cloud.getTempFileURL({
              fileList: [result.fileID],
              success: (res) => {
                const {
                  tempFileURL
                } = res.fileList[0]
                this.setData({
                  screenshot: tempFileURL
                })
                wx.hideLoading()
              }
            })
          },
        })
      }
    })
  },
  // 获取备注信息
  getRemark(e) {
    this.setData({
      remark: e.detail
    })
  },
  // 获取额外赏金
  getAddMoney(e) {
    this.setData({
      addMoney: Number(e.detail)
    })
  },
  // 立即发布
  publish() {
    const that = this.data
    // 只要"收件地址"，"快递商家"，"取件码"或上传截图没填，就提醒用户
    if (!that.address || !that.business || !(that.codeMsg || that.screenshot)) {
      wx.showToast({
        title: '填写的信息不全！',
        icon: 'error'
      })
      return
    }
    // 向集合"order"中添加字段
    db.collection('order').add({
      data: {
        // 模块类型
        name: '快递代取',
        // 当前时间
        time: getTimeNow(),
        // 事件戳
        timeStamp: Date.parse(getTimeNow()),
        // 订单金额
        money: that.money + that.addMoney,
        // 订单状态
        state: '待帮助',
        // 收件地址
        address: that.address,
        // 取件码
        codeMsg: that.codeMsg,
        // 截图
        screenshot: that.screenshot,
        // 订单信息
        orderInfo: {
          // 快递大小
          size: that.typeList[that.typeNow].name,
          // 快递商家
          business: that.business,
          // 备注信息 
          remark: that.remark,
          // 期望送达
          expectTime: that.arriveArray[that.arriveIndex],
          // 性别限制
          expectGender: that.genderArray[that.genderIndex],
          // 快递数量
          count: that.countArray[that.countIndex]
        },
        // 用户信息
        userInfo: that.userInfo
      },
      success: () => {
        wx.switchTab({
          url: '../../pages/index/index',
        })
        wx.showToast({
          title: '发布成功',
          icon: 'success',
        })
      },
      fail:(err)=>{
        console.log(err);
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const userInfo = wx.getStorageSync('userInfo')
    this.setData({
      userInfo
    })

    // 获取用户选中的地址
    const selectAddress = wx.getStorageSync('selectAddress')
    if (!selectAddress) return
    this.setData({
      address: `${selectAddress.bulid}-${selectAddress.houseNumber}`
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})